package collection;

/**
 * 模拟 HashSet底层结构
 */
@SuppressWarnings("all")
public class HashSetStructure {

    public static void main(String[] args) {
        //模拟一个HashSet的底层(HashMap)结构

        //1.创建一个数组，数组的类型是Nodes
        Nodes[] table = new Nodes[16];
        System.out.println("table=" + table);

        //2.创建结点
        Nodes john = new Nodes("john", null);
        table[2] = john;
        Nodes jack = new Nodes("jack", null);
        john.next = jack;//将 jack 结点挂载到 john 后面
        System.out.println("table=" + table);
        Nodes rose = new Nodes("Rose", null);
        jack.next = rose;//将 rose 结点挂载到 jack 后面

        Nodes lucy = new Nodes("lucy", null);
        table[3] = lucy;    //把lucy 放在 table的索引为3的位置
    }
}

class Nodes{//结点，存储数据，可以指向下一个结点，从而实现链表

    Object item;//存放数据

    Nodes next;//引用，可以指向下个结点

    public Nodes(Object item, Nodes next) {
        this.item = item;
        this.next = next;
    }
}